/**
 * Created by wanglei on 2016/3/25.
 * ΢微信分享公共
 *
 */
import {square, ajax} from './resize.js';
import {way} from "./common.js";
import $ from "jquery";
export var weChat = {
        /**
         * ΢分享
         * @param shareData 分享数据
         */
        share: function (shareData) {
            wx.ready(function () {
                /*分享到朋友圈*/
                wx.onMenuShareTimeline({
                    title: shareData.title, // 分享标题
                    desc: shareData.desc,		  //分享描述
                    link: shareData.link, // 分享链接
                    imgUrl: shareData.imgUrl, // 分享图标
                    success: function () {
                        // $("#share-alert").remove();
                    },

                    cancel: function () {
                        // 用户取消分享后执行的回调函数
                        //alert("取消分享!");
                    }
                });

                /*分享给朋友*/
                wx.onMenuShareAppMessage({
                    title: shareData.title, // 分享标题
                    desc: shareData.desc, // 分享描述
                    link: shareData.link, // 分享链接
                    imgUrl: shareData.imgUrl, // 分享图标
                    type: '', // 分享类型,music、video或link，不填默认为link
                    dataUrl: '', // 如果type是music或video，则要提供数据链接，默认为空
                    success: function () {
                        // $("#share-alert").remove();
                    },
                    cancel: function () {
                        // 用户取消分享后执行的回调函数
                    }
                });

                /*分享到QQ*/
                wx.onMenuShareQQ({
                    title: shareData.title, // 分享标题
                    desc: shareData.desc, // 分享描述
                    link: shareData.link, // 分享链接
                    imgUrl: shareData.imgUrl, // 分享图标
                    success: function () {
                        // $("#share-alert").remove();
                        // 用户确认分享后执行的回调函数
                    },
                    cancel: function () {
                        // 用户取消分享后执行的回调函数
                    }
                });

                /*分享到腾讯微博*/
                wx.onMenuShareWeibo({
                    title: shareData.title, // 分享标题
                    desc: shareData.desc, // 分享描述
                    link: shareData.link, // 分享链接
                    imgUrl: shareData.imgUrl, // 分享图标
                    success: function () {
                        $("#share-alert").remove();
                        // 用户确认分享后执行的回调函数
                    },
                    cancel: function () {
                        // 用户取消分享后执行的回调函数
                    }
                });
            });
        },
        //opt分享参数
        shareExe: function (opt, callback) {
            //var authToken = window.localStorage.getItem("authToken");
            $.ajax({
                url: ajax.wxConfig,
                type: "POST",
                xhrFields: {withCredentials: true},
                data: {
                    configUrl: location.href
                },
                success: (res) => {
                    wx.config({
                        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                        appId: 'wxfe9aa2316d13b7a6', // 必填，公众号的唯一标识
                        timestamp: res.timestamp, // 必填，生成签名的时间戳
                        nonceStr: res.noncestr, // 必填，生成签名的随机串
                        signature: res.sign,// 必填，签名，见附录1
                        jsApiList: ["onMenuShareTimeline", "onMenuShareAppMessage", "onMenuShareQQ", "onMenuShareWeibo"] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
                    });

                    weChat.share(opt);
                    way._typeOf(callback) == "[object function]" && callback(res);
                }
            })
        },
        weChatPay: function (payData, orderid) {
            function onBridgeReady() {
                WeixinJSBridge.invoke(
                    'getBrandWCPayRequest', {
                        "appId": payData.appId,                 //公众号名称，由商户传入
                        "timeStamp": payData.timestamp,         //时间戳，自1970年以来的秒数
                        "nonceStr": payData.noncestr,           //随机串
                        "package": payData.package,
                        "signType": payData.signtype,           //微信签名方式：
                        "paySign": payData.paysign              //微信签名
                    }, function (res) {
                        if (res.err_msg == "get_brand_wcpay_request:ok") {// 使用以上方式判断前端返回
                            //window.location.href= "http://www.ttgoing.com/wechat/#/order/myOrder";
                            window.location.href = Util.jumpUrl + "/order/success/" + orderid;

                        } else {
                            Util.tips("您已经取消订单！您可以在订单系统继续支付", function () {
                                window.location.href = Util.jumpUrl + "/order/myOrder";
                            })
                        }
                    }
                );
            }

            if (typeof WeixinJSBridge == "undefined") {
                if (document.addEventListener) {
                    document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
                } else if (document.attachEvent) {
                    document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
                    document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
                }
            } else {
                onBridgeReady();
            }
        },
        record: function (startcb, stopcb) {
            var localId,
                serverId,
                timeout,
                starttime = 0,
                endtime = 0,
                getTimes = 0,
                recordWay = {};
            $.ajax({
                url: ajax.wxConfig,
                type: "POST",
                xhrFields: {withCredentials: true},
                data: {
                    configUrl: location.href
                },
                success: (res) => {
                    wx.config({
                        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                        appId: 'wxfe9aa2316d13b7a6', // 必填，公众号的唯一标识
                        timestamp: res.timestamp, // 必填，生成签名的时间戳
                        nonceStr: res.noncestr, // 必填，生成签名的随机串
                        signature: res.sign,// 必填，签名，见附录1
                        jsApiList: ["startRecord", "stopRecord", "onVoiceRecordEnd", "playVoice", "pauseVoice", "uploadVoice", "downloadVoice"] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
                    });
                    // wx.ready(function () {

                        recordWay = {
                            //开始录音
                            start: () => {

                                starttime = new Date().getTime();
                                timeout = setTimeout(function () {
                                    if ($("#isRecording")) {
                                        $("#isRecording").remove();
                                    }
                                    $("body").append('<div id="isRecording"></div>');
                                    wx.startRecord();

                                    way._typeOf(startcb) == "[object function]" && startcb();
                                }, 500);
                            },
                            //停止录音
                            stop: () => {
                                endtime = new Date().getTime();
                                if ((endtime - starttime) < 500) {
                                    starttime = 0;
                                    endtime = 0;
                                    clearTimeout(timeout);
                                } else {
                                    wx.stopRecord({
                                        success: function (res) {
                                            localId = res.localId;
                                            if ($("#isRecording")) {
                                                $("#isRecording").remove();
                                            }
                                            recordWay.upload(res.localId)
                                        }
                                    })
                                }

                            },
                            //自动停止
                            autoStop: (e) => {
                                wx.onVoiceRecordEnd({
                                    // 录音时间超过一分钟没有停止的时候会执行 complete 回调
                                    complete: function (res) {
                                        localId = res.localId;
                                        if ($("#isRecording")) {
                                            $("#isRecording").remove();
                                        }
                                        recordWay.upload(res.localId)
                                    }
                                });
                            },
                            //播放录音
                            play: () => {
                                wx.playVoice({
                                    localId: localId // 需要播放的音频的本地ID，由stopRecord接口获得
                                });
                            },
                            pause: () => {
                                wx.pauseVoice({
                                    localId: '' // 需要暂停的音频的本地ID，由stopRecord接口获得
                                });
                            },
                            //上传录音
                            upload: () => {
                                wx.uploadVoice({
                                    localId: localId, // 需要上传的音频的本地ID，由stopRecord接口获得
                                    isShowProgressTips: 1, // 默认为1，显示进度提示
                                    success: function (res) {
                                        // alert(localId);
                                        serverId = res.serverId; // 返回音频的服务器端ID
                                        // alert(serverId);
                                        $.ajax({
                                            url: ajax.uploadVoice,
                                            type: "POST",
                                            xhrFields: {withCredentials: true},
                                            data: {
                                                mediaId: serverId
                                            },
                                            success: (resv) => {
                                                var time = endtime - starttime;
                                                var time_sec = Math.floor(time / 1000);
                                                way._typeOf(stopcb) == "[object function]" && stopcb(serverId, time_sec);
                                            }
                                        })

                                    }
                                });
                            },
                            //下载录音
                            download: () => {
                                wx.downloadVoice({
                                    serverId: serverId, // 需要下载的音频的服务器端ID，由uploadVoice接口获得
                                    isShowProgressTips: 1, // 默认为1，显示进度提示
                                    success: function (res) {
                                        localId = res.localId; // 返回音频的本地ID
                                        recordWay.play(res.localId)
                                    }
                                });
                            }
                        };
                        var ua = navigator.userAgent.toLowerCase();
                        if (/iphone|ipad|ipod/.test(ua)) {
                            $("#j-record").html("").html("长按录音");
                            wx.startRecord({
                                success:function () {
                                    wx.stopRecord({
                                        success: function (res) {
                                            localId = res.localId;
                                        }
                                    });
                                },cancle:function () {
                                    alert("请先允许录音");
                                }
                            });

                            document.querySelector("#j-record").addEventListener("touchstart", recordWay.start, false);
                            document.querySelector("#j-record").addEventListener("touchend", recordWay.stop, false);
                            //alert("iphone");
                        } else if (/android/.test(ua)) {
                                $("#j-record").html("").html("点击开始录音");
                                $("#j-record").on("click", function (e) {
                                    e.preventDefault();
                                    if (getTimes % 2 == 0) {
                                        recordWay.start(e);
                                        $("#j-record").html("").html("点击结束录音");
                                    }else{
                                        recordWay.stop(e);
                                        $("#j-record").html("").html("点击开始录音");
                                    }
                                    getTimes++;
                                });

                        }
                        // way._typeOf(callback) == "function" && callback(recordWay);

                        //
                        recordWay.autoStop();
                        // document.querySelector("#j-top").addEventListener("touchend", recordWay.download, false);

                    // })
                }
            });
        },
        chooseImg: function (currentPic, picArr) {
            $.ajax({
                url: ajax.wxConfig,
                type: "POST",
                xhrFields: {withCredentials: true},
                data: {
                    configUrl: location.href
                },
                success: (res) => {
                    wx.config({
                        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                        appId: 'wxfe9aa2316d13b7a6', // 必填，公众号的唯一标识
                        timestamp: res.timestamp, // 必填，生成签名的时间戳
                        nonceStr: res.noncestr, // 必填，生成签名的随机串
                        signature: res.sign,// 必填，签名，见附录1
                        jsApiList: ["previewImage"] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
                    });
                    //预览图片
                    wx.previewImage({
                        current: currentPic, // 当前显示图片的http链接
                        urls: picArr // 需要预览的图片http链接列表
                    });
                }
            })
        }
    }
    ;


